這裡開始是實戰的學習紀錄,首先我們要先創建一個新專案,採用 Vue Cli
安裝辦法參考這裡 鐵人賽Day28 - Vue Cli
接著進行 vue router
的安裝跟配置 鐵人賽Day30 - Vue Router 及配置路由文件
接著我們要來安裝 axios
套件,同樣也可以參考 鐵人賽Day28 - Vue Cli
都好了之後,因為我有申請私人的 API
所以這裡就不多贅述
先到 App.vue
測試剛剛的 API
是否能用,到 script
的地方新增一個 created
的 hook
,在參考 axios
官方文件的使用方法讀取 API
:
<script>
import HelloWorld from './components/HelloWorld'
export default {
name: 'App',
components: {
HelloWorld
},
created() {
const api = 'https://vue-course-api.hexschool.io/api/jerryproduct/products';
this.$http.get(api).then((response) => {
console.log(response.data);
});
},
}
</script>
好了之後,因為有時候 API
的伺服器會變,所以我們要把網址的部分給獨立出去
這時候到 config
資料夾底下,會有 dev.env.js
這隻檔案,這個是開發時候拿來放置環境變數的,prod.env.js
是正式上線的版本,所以到時候在 dev.env.js
新增的環境變數也都要複製過去 prod.env.js
到 dev.env.js
之後,我們新增兩個環境變數:
module.exports = merge(prodEnv, {
NODE_ENV: '"development"',
APIPATH: '"https://vue-course-api.hexschool.io"',
CUSTOMPATH: '"jerryproduct"',
})
主要就是 APIPATH
和 CUSTOMPATH
接著我們到 App.vue
來測試看看兩個變數是否能運行:
<script>
import HelloWorld from './components/HelloWorld'
export default {
name: 'App',
components: {
HelloWorld
},
created() {
const api = 'https://vue-course-api.hexschool.io/api/jerryproduct/products';
console.log(process.env.APIPATH, process.env.CUSTOMPATH);
this.$http.get(api).then((response) => {
console.log(response.data);
});
},
}
</script>
主要是 console
那行程式碼,確定能運行之後,我們就可以稍微改寫一下變數 api
了:
<script>
import HelloWorld from './components/HelloWorld'
export default {
name: 'App',
components: {
HelloWorld
},
created() {
const api = `${process.env.APIPATH}/api/${process.env.CUSTOMPATH}/products`;
this.$http.get(api).then((response) => {
console.log(response.data);
});
},
}
</script>
主要是變數 api
的部分,用 ES6
的字串模板給組起來了